home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / util / shell / ViNCEd.lha / ViNCEd / Include / vnc / window.h < prev   
C/C++ Source or Header  |  1998-08-22  |  35KB  |  853 lines

  1. #ifndef VNC_WINDOW_H
  2. #define VNC_WINDOW_H
  3. /*********************************************************
  4.  ** ViNCEd                                              **
  5.  ** a DOS - window handler                              **
  6.  **                                                     **
  7.  ** © 1991-98 THOR-Software inc.                        **
  8.  ** Version 3.60                                        **
  9.  **                                                     **
  10.  ** program version 3.60 21 Aug 1998    THOR            **
  11.  **                                                     **
  12.  ** ViNCEd Window: The main structure (ViNCWindow)      **
  13.  **-----------------------------------------------------**
  14.  **                                                     **
  15.  ** all use at your own risk,etc.,etc.                  **
  16.  **                                                     **
  17.  ** Everything declared as "reserved" or                **
  18.  ** "not used" is NOT free for your use,                **
  19.  ** it will propably used in a later release.           **
  20.  ** All FREE entries are free for public                **
  21.  ** use and are, if not otherwise noted,                **
  22.  ** initialized with ZERO                               **
  23.  *********************************************************/
  24.  
  25. #ifndef EXEC_TYPES_H
  26. #include <exec/types.h>
  27. #endif
  28.  
  29. #ifndef EXEC_LIBRARIES_H
  30. #include <exec/libraries.h>
  31. #endif
  32.  
  33. #ifndef EXEC_PORTS_H
  34. #include <exec/ports.h>
  35. #endif
  36.  
  37. #ifndef EXEC_SEMAPHORES_H
  38. #include <exec/semaphores.h>
  39. #endif
  40.  
  41. #ifndef EXEC_IO_H
  42. #include <exec/io.h>
  43. #endif
  44.  
  45. #ifndef EXEC_DEVICES_H
  46. #include <exec/devices.h>
  47. #endif
  48.  
  49. #ifndef DEVICES_TIMER_H
  50. #include <devices/timer.h>
  51. #endif
  52.  
  53. #ifndef DEVICES_CONSOLE_H
  54. #include <devices/console.h>
  55. #endif
  56.  
  57. #ifndef DEVICES_CONUNIT_H
  58. #include <devices/conunit.h>
  59. #endif
  60.  
  61. #ifndef DEVICES_KEYMAP_H
  62. #include <devices/keymap.h>
  63. #endif
  64.  
  65. #ifndef GRAPHICS_CLIP_H
  66. #include <graphics/clip.h>
  67. #endif
  68.  
  69. #ifndef GRAPHICS_GFX_H
  70. #include <graphics/gfx.h>
  71. #endif
  72.  
  73. #ifndef GRAPHICS_RASTPORT_H
  74. #include <graphics/rastport.h>
  75. #endif
  76.  
  77. #ifndef GRAPHICS_TEXT_H
  78. #include <graphics/text.h>
  79. #endif
  80.  
  81. #ifndef UTILITY_TAGITEM_H
  82. #include <utility/tagitem.h>
  83. #endif
  84.  
  85. #ifndef INTUITION_INTUITION_H
  86. #include <intuition/intuition.h>
  87. #endif
  88.  
  89. #ifndef INTUITION_SCREENS_H
  90. #include <intuition/screens.h>
  91. #endif
  92.  
  93. #ifndef DOS_DOS_H
  94. #include <dos/dos.h>
  95. #endif
  96.  
  97. #ifndef DOS_DOSEXTENS_H
  98. #include <dos/dosextens.h>
  99. #endif
  100.  
  101. #ifndef WORKBENCH_WORKBENCH_H
  102. #include <workbench/workbench.h>
  103. #endif
  104.  
  105. #ifndef VNC_VNCBASE_H
  106. #include <vnc/vncbase.h>
  107. #endif
  108.  
  109. #ifndef VNC_PREFS_H
  110. #include <vnc/prefs.h>
  111. #endif
  112.  
  113. #ifndef VNC_OWNER_H
  114. #include <vnc/owner.h>
  115. #endif
  116.  
  117. #ifndef VNC_DYNAMICS_H
  118. #include <vnc/dynamics.h>
  119. #endif
  120.  
  121. #ifndef VNC_KEYBOARD_H
  122. #include <vnc/keyboard.h>
  123. #endif
  124.  
  125.  
  126. /* This is the description of the main structure of ViNCEd, the
  127.    ViNCWindow. It is linked to a group of "owners" that share
  128.    a common output window. This window is described by this structure */
  129.  
  130. struct ViNCWindow {
  131.         struct ViNCWindow       *vcn_succ,*vcn_pred; /* linked list in
  132.                                                         library base */
  133.         UWORD                    vcn_Version;        /* version information */
  134.         UWORD                    vcn_Revision;
  135.         struct SignalSemaphore   vcn_Semaphore;      /* access grant. DO
  136.                                                         NOT TOUCH. Use
  137.                                                         LockWindow(),
  138.                                                         UnLockWindow()! */
  139.         UWORD                    vcn_OpenCount;      /* times DOS Open'd
  140.                                                         this. No lock count,
  141.                                                         no asyncs here */
  142.  
  143. /* base pointers */
  144.         struct VNCBase          *vcn_VNCBase;        /* library base */
  145.         struct ViUserNode       *vcn_UserNode;       /* for you. See below*/
  146.  
  147. /* important flags */
  148.         ULONG                    vcn_Flags;
  149.         ULONG                    vcn_ExtFlags;       /* even more */
  150.         ULONG                    vnc_EventFlags;     /* received events */
  151.         ULONG                    vcn_DOSFlags;       /* much more */
  152.         ULONG                    vcn_RequestedEvents;/* receive which input
  153.                                                         events */
  154.  
  155. /* links to the system */
  156.         struct Window           *vcn_Window;    /* the intuition window,
  157.                                                    if open */
  158.         struct ViNCNewWindow    *vcn_NewWindow; /* temporary for reopen */
  159.         struct RastPort         *vcn_RastPort;  /* private one, for drawing*/
  160.         struct Layer            *vcn_Layer;     /* the layer */
  161.         struct Screen           *vcn_Screen;    /* the screen the window is
  162.                                                    displayed on, if open */
  163.         struct TmpRas           *vcn_TmpRas;    /* used to speedup
  164.                                                    scrolling */
  165.         struct TextFont         *vcn_TextFont;  /* text used for rendering*/
  166.         void                    *vcn_MemPool;   /* ViNCEd's private memory
  167.                                                    pool. Do not touch, THIS
  168.                                                    IS NOT EXEC COMPATIBLE
  169.                                                    Use AllocEdMem(),
  170.                                                    FreeEdMem() to make use
  171.                                                    of this pool */
  172.  
  173.         struct DosList          *vcn_DeviceNode; /* no BPTR! Pointer to
  174.                                                     dos device entry */
  175.  
  176.         struct ConUnit          *vcn_ConUnit;   /* ConUnit for backwards
  177.                                                    compatibility. Do not
  178.                                                    use this. */
  179.  
  180.         struct KeyMap           *vcn_KeyMap;    /* used keyboard. This is
  181.                                                    a console compatible
  182.                                                    keyboard, not the
  183.                                                    VNC extensions */
  184.  
  185.         UWORD                   *vcn_TabStops;  /* array of TAB positions*/
  186.  
  187.  
  188. /* size of window and font */
  189.  
  190.         UWORD                    vcn_TXSize;
  191.         UWORD                    vcn_TYSize;    /* Size of the font */
  192.  
  193.         UWORD                    vcn_TBaseLine; /* text base line */
  194.  
  195.         UWORD                    vcn_TotalCount;/* total open count of
  196.                                                    all structures.
  197.                                                    The handler is allowed
  198.                                                    to leave not until this
  199.                                                    is zero */
  200.         UWORD                    vcn_LeftOffset;/* text starting offset
  201.                                                    in the window */
  202.         UWORD                    vcn_TopOffset; /* same, but vertical */
  203.         UWORD                    vcn_RightOffset;
  204.         UWORD                    vcn_BottomOffset; /* for mini clipping */
  205.  
  206.         UWORD                    vcn_Width;
  207.         UWORD                    vcn_Height;    /* available area for
  208.                                                    drawing in pixels */
  209.  
  210.         UWORD                    vcn_CWidth;
  211.         UWORD                    vcn_CHeight;   /* same in characters */
  212.  
  213.         UWORD                    vcn_BProtLeft;
  214.         UWORD                    vcn_BProtTop;
  215.         UWORD                    vcn_BPropRight;
  216.         UWORD                    vcn_BPortBottom;
  217.                                                 /* border protection
  218.                                                    zone, used to avoid
  219.                                                    printing of italics
  220.                                                    into the border */
  221.         UWORD                    vcn_RightScroll;
  222.         UWORD                    vcn_LeftScroll;/* scrolling margins*/
  223.  
  224.  
  225. /* system lists. None of these lists should be used directly. Use the
  226.    library functions to modify them. */
  227.  
  228.         struct MinList